package dparish.client.inject;

import com.google.gwt.activity.shared.ActivityManager;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.google.gwt.place.shared.PlaceController;
import com.google.gwt.place.shared.PlaceHistoryHandler;

import dparish.client.activity.StudentListActivity;
import dparish.client.activity.StudentActivity;
import dparish.client.rf.StudentRequest;
import dparish.client.view.StudentView;

/**
 * The GIN interface you call to get instances of classes.
 * @see <a href="http://code.google.com/p/google-gin/wiki/GinTutorial">Gin tutorial</a>
 * @see <a href="http://www.canoo.com/blog/2011/04/05/gwt-dependency-injection-recipes-using-gin/">Excellent GIN tutorial</a>
 * @see <a href="http://www.youtube.com/watch?v=hBVJbzAagfs">Gin and Guice Google I/O talk</a>
 * @author dparish
 *
 */
@GinModules(MyGinModule.class)
public interface MyGinInjector extends Ginjector {
	StudentView getStudentView();
	StudentRequest getStudentRequest();
	StudentActivity getStudentPresenter();
	StudentListActivity getStudentListPresenter();
	PlaceController getPlaceController();
	ActivityMapper getActivityMapper();
	ActivityManager getActivityManager();
	PlaceHistoryHandler getRegisteredPlaceHistoryHandler();
}
